Problem: flatten(nil()) -> nil() flatten(unit(x)) -> flatten(x) flatten(++(x,y)) -> ++(flatten(x),flatten(y)) flatten(++(unit(x),y)) -> ++(flatten(x),flatten(y)) flatten(flatten(x)) -> flatten(x) rev(nil()) -> nil() rev(unit(x)) -> unit(x) rev(++(x,y)) -> ++(rev(y),rev(x)) rev(rev(x)) -> x ++(x,nil()) -> x ++(nil(),y) -> y ++(++(x,y),z) -> ++(x,++(y,z)) Proof: Bounds Processor: bound: 1 enrichment: match automaton: final states: {5,4,3} transitions: unit1(2) -> 4* unit1(1) -> 4* nil1() -> 4,3 flatten1(2) -> 3* flatten1(1) -> 3* flatten0(2) -> 3* flatten0(1) -> 3* nil0() -> 1* unit0(2) -> 2* unit0(1) -> 2* ++0(1,2) -> 5* ++0(2,1) -> 5* ++0(1,1) -> 5* ++0(2,2) -> 5* rev0(2) -> 4* rev0(1) -> 4* 1 -> 5* 2 -> 5* problem: Qed